package com.itlong.cloud.commons.service;

import com.itlong.cloud.POJO.DTO.common.LimitedDeviceDto;
import com.itlong.cloud.POJO.DTO.property.CloudIntercomChangeLogGetDTO;
import com.itlong.cloud.POJO.PO.DeviceOnlineStatusAlterLogPO;
import com.itlong.cloud.POJO.PO.DeviceRunLogPO;
import com.itlong.cloud.POJO.VO.common.LimitedDeviceVO;

import java.io.UnsupportedEncodingException;

/**
 * <desc>
 *      设备业务接口
 * </desc>
 *
 * @create 2018/03/28
 */
public interface ICloudDeviceBaseService {
    /**
     * <desc>
     *  保存受限设备和缓存设备最新更新时间
     * </desc>
     *
     * @param getDTO
     * @return
     * @author caoshuai
     * @createDate 2020/11/20 18:07
     */
    LimitedDeviceVO saveLimitedDevice(LimitedDeviceDto getDTO) throws UnsupportedEncodingException;

    /**
     * <desc>
     *      保存设备在线状态变更
     * </desc>
     *
     * @param deviceOnlineStatusAlterLogPO
     * @author caoshuai
     * @createDate 2020/11/24 15:29
     */
    void saveDeviceOnlineStatusAlterLog(DeviceOnlineStatusAlterLogPO deviceOnlineStatusAlterLogPO);

    /**
     * <desc>
     * 保存设备日志信息
     * </desc>
     *
     * @param deviceRunLogPO
     * @author caoshuai
     * @createDate 2020/12/3 14:17
     */
    Integer saveDeviceRunLog(DeviceRunLogPO deviceRunLogPO) throws Exception;

    /**
     * <desc>
     *  修改设备运行日志上传状态
     * </desc>
     *
     * @param deviceRunLogPO
     * @return
     * @author caoshuai
     * @createDate 2020/12/3 14:17
     */
    Integer updateDeviceRunLog(DeviceRunLogPO deviceRunLogPO);


    /**
     * <desc>
     * 获取受限getDTO 获取受限设备总数
     * </desc>
     *
     * @param getDTO
     * @return
     * @author caoshuai
     * @createDate 2020/12/3 14:17
     */
    Integer getLimitDeviceTotalByDTO(CloudIntercomChangeLogGetDTO getDTO);

    /**
     * <desc>
     * 获取平板受限设备总数
     * </desc>
     *
     * @param deviceUnique
     * @return
     * @author caoshuai
     * @createDate 2020/12/3 14:17
     */
    Integer getLimitDevicePadTotalBy(String deviceUnique);
}
